package org.boot.thread.constant;

/**
 * 线程配置相关常量类
 *
 * @author 李坤
 * @date 2022/8/18 23:21
 */
public abstract class ThreadConstant {

    /**
     * Java 虚拟机可用的处理器数量
     */
    public static final int CPU_SIZE = Runtime.getRuntime().availableProcessors();

    /**
     * 核心线程数 == Java 虚拟机可用的处理器数量
     */
    public static final int CORE_POOL_SIZE = CPU_SIZE;

    /**
     * 线程空闲时间(超时后将销毁非核线程)
     */
    public static final int KEEP_ALIVE_SECONDS = 60 * 10;

    /**
     * 最大线程数 == 核心线程数 * 2
     */
    public static final int MAX_POOL_SIZE = CPU_SIZE << 3;

    /**
     * 缓冲队列长度(执行缓冲任务队列的长度)
     */
    public static final int QUEUE_CAPACITY = CPU_SIZE >> 1;

    /**
     * 线程空闲时间(超时后将心销毁非核线程)线程名称前缀
     */
    public static final String THREAD_NAME_PREFIX = "taskThread-";

}
